package org.irri.smta.service;

import java.util.List;

import org.irri.smta.domain.SmtaReport;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.domain.Specification;

public interface ISmtaReportService<T, ID> extends IServiceBase<T, ID> {
	
	Long getRowCount();
	List<SmtaReport> findAllOrdered();
	List<SmtaReport> findByPage(Integer first, Integer pageSize);
	List<SmtaReport> findAll(Pageable pageable);
	List<SmtaReport> findAll(Specification<SmtaReport> specification, Pageable pageable);
	List<SmtaReport> findAllUnreported();
	List<SmtaReport> findAllReported();
	List<SmtaReport> findBySymbol(String symbol);
	SmtaReport updateReportedToTreaty(Long id, Boolean reportedToTreaty) throws Exception;
	SmtaReport incrementReportAttempts(Long id) throws Exception;
	void setAsUreported(String symbol) throws Exception;
	void setAsReported(String symbol) throws Exception;

}
